﻿using Sidvall.WorkItemManager.Data;
using System.Threading.Tasks;

namespace Sidvall.WorkItemManager.Workflow
{
    public interface IWorkItemProvider : ISensorProvider
    {
        IWorkItemProviderManager Manager { get; set; }
        SensorValueCollection SensorValues { get; }
        string Context { get; set; }
        string ExecutionContext { get; set; }
        byte ExecutionCompletionPercentage { get; }

        Task<WorkItemResult> ExecuteAsync();
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
        Task<WorkItemRating> GetWorkItemRatingAsync();
    }
}
